///////////////////////////////////////////////////////////////////////////////
///
/// Cylan Client Core
/// Copyright (C) Shenzhen Cylan Tech. Co., Ltd. 2012
///
/// @file       IVideoRes.h
/// @brief      IVideo视频资源API
///
///////////////////////////////////////////////////////////////////////////////
#ifndef CYLAN_IVIDEORES_H
#define CYLAN_IVIDEORES_H

#include "Core/Core.h"

/**
 * @struct IVIDEO_RESOURCE
 * @brief IVIDEO资源信息
 */
typedef struct IVIDEO_RESOURCE
{
    int  ID;                        ///< IVEDIO资源ID
    char Name[CC_NAME_LEN];         ///< IVEDIO资源名称
    char Desc[CC_NAME_LEN];         ///< IVEDIO资源描述
    char Icon[CC_NAME_LEN];         ///< IVEDIO图标地址
    char Uri[CC_MAX_URL];           ///< IVEDIO链接地址    
    char Group[CC_NAME_LEN];        ///< IVEDIO资源所属组    
    int  IconCreateTime;            ///< 图标创建时间
    int  isHide;                    ///< IVEDIO资源是否隐藏,0不隐藏,1隐藏
} IVIDEO_RESOURCE;

/**
 * @fn int IVideoResourceCount(const CHANDLE Session)
 * @brief 返回会话可用的IVideo资源个数
 * @param Session 已登陆的Session句柄
 * @return 可用的IVideo资源量
 */
int IVideoResourceCount(const CHANDLE Session);

/**
 * @fn CC_STATUS IVideoResourceInfo(const CHANDLE Session, int Index, IVIDEO_RESOURCE *Resource, int *Size)
 * @brief 获取IVideo资源信息
 * @param Session 已登陆的Session句柄
 * @param Index 资源索引
 * @param Resource 调用者提供的缓冲区以保存资源信息
 * @param Size Resource参数的缓冲区大小. 如果提供的缓冲区太小, 会返回所需的缓冲区大小字节数.
 * @return IVideo资源信息
 * @retval ERR_SUCCESS 成功
 * @retval ERR_NOT_FOUND 资源索引超出可用资源个数范围
 * @retval ERR_BUFFER_TOO_SMALL 提供的Resource缓冲区太小
 */
CC_STATUS IVideoResourceInfo(const CHANDLE Session, int Index, IVIDEO_RESOURCE *Resource, int *Size);


#endif /* CYLAN_IVIDEORES_H */
